package club.kingyin.kyblog.core.utils.log;

import java.lang.annotation.*;

/**
 * @author : kingyin
 * @version : 1.0
 * @program : Ky-Blog
 * @description : 日志记录
 * @create : 2021年08月13日 15:01
 **/
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {

    String module() default "";

    String operator() default "";

    // 方法处理器 泛型是辅助处理器
    Class<? extends ExecutePostProcessor<?>>execute() default ExecutePostProcessorDefault.class;

    // 后置通知处理链，按指定顺序成链
    Class<? extends LogPostProcessor>[] postProcessor() default { PostProcessorSecurity.class };

    // 来源注入
    Class<? extends BeforePostProcessor> sources() default BeforePostProcessorDefault.class;

    // 异常处理
    Class<? extends CallExceptionHandler> exception() default CallExceptionHandlerDefault.class;
}
